package com.ruoyi.pv.domain;

import java.util.Date;

import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysUser;
import lombok.*;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotNull;

/**
 * 预约记录对象 pv_appoint_record
 *
 * @author zzx
 * @date 2023-04-22
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
@ToString
public class PvAppointRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 学生编号
     */
    @Excel(name = "学生编号")
    private Long stuId;
    private SysUser student;

    private Long deptId;

    /**
     * 预约编号
     */
    @Excel(name = "预约编号")
    @NotNull(message = "预约编号（appointId）不可为空")
    private Long appointId;
    private PvAppoint appoint;

    /**
     * 预约时间
     */
    @NotNull(message = "预约时间（appointDate）不可为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date appointDate;

    /**
     * 时段编号
     */
    @Excel(name = "时段")
    @NotNull(message = "时段编号（appointTimeId）不可为空")
    private Long appointTimeId;

    private PvAppointTime appointTime;

    /**
     * 履行状态
     */
    @Excel(name = "履行状态")
    private Integer doStatus;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Integer status;

    /**
     * 预留字段1
     */
    private String reservedOne;

    /**
     * 预留字段2
     */
    private String reservedTwo;
}
